Tableau製品のログを解析するツール「Logshark」を使ってみた #tableau
はじめに
※当エントリはTableau Server v2018.3を前提としています。
どうも。DI部@大阪オフィスのtamaです。
今回はTableauのログを解析してワークブックとして出力してくれるという便利ツールのLogsharkをご紹介します。
Logsharkとは
Tableauのログからデータを抽出し、エラー状態、パフォーマンスのボトルネック、バックグラウンドで動いているアクティビティを識別して理解するのに役立つワークブックを作成することができます。
ちなみに、何となくTableau Server専用と思っちゃいますが、Tableau Desktopのログにも対応しています。ただ、今回はTableau Serverのログを使用したいと思います。
Logsharkを導入するための準備
システム要件
下記を満たしたWindowsマシンが必要です。ちなみにTableau Serverがインストールされているマシンである必要はありません。
- 64ビット版のWindows Server(2008 R2以降)
- Logsharkをインストールするマシンのローカル管理者権限を持つアカウント
- .NET Framework 4.5.1(またはそれ以降のバージョン)
- Logsharkのインストール時に自動でインストールされる
- できるだけ最新のハードウェアとソフトウェアを搭載したコンピューターを使用する
- Logsharkがログファイルを処理する能力は、CPU、メモリ、およびディスクI / Oのパフォーマンスが向上するにつれて早くなる
- Tableau Desktop v10.5(またはそれ以降)
- 解析結果を閲覧するために必要
Logsharkのインストール
インストーラーをGETする
下記よりダウンロードします。
- https://github.com/tableau/Logshark/releases/download/3.0.1/Setup_Logshark_v3.0.1.exe
インストーラーを実行する
まず、Optionを選択します。
インストール先や、Path環境変数といった設定の画面にうつります。今回はとりあえず初期設定でいきます。
Installをクリックすると、処理が進んでインストールが完了します。
Logsharkを使ってみる
ログを用意する
解析したいTableau Serverのログを取得しておきます。
実行する
Logsharkをインストールしたマシンに、Tableau Serverのログを配置します。
コマンドプロンプトを起動し、Logsharkのフォルダに移動します。そして、下記のコマンドを実行することで、Logsharkが実行されます。
logshark Target [Options]
Target
という部分に、ログファイルの名前を指定します。また、どのようなオプションがあるかは--help
を指定して実行します。
>cd C:\Program Files\Logshark >logshark C:\Users\xxxxxx\Desktop\logs.zip
Logsharkで解析した結果を確認する
ワークブックの種類
Logsharkを実行すると、解析結果がわかるワークブックがOutputフォルダに配置されます(既定だとC:\Program Files\Logshark\Output
)。フォルダ名はHostName_DateTime_FileName
というルールで命名されます。
- HostName
- Logsharkが実行されたコンピュータの名前
- DateTime
- ログがいつ処理されたかを示すタイムスタンプ
- FileName
- ログアーカイブファイルの名前
フォルダをのぞくと、ズラッとワークブック(と元になっているhyper)が出力されていますね。
公式ドキュメントに記載されているワークブックの説明を訳してみました(ほぼGoogle翻訳)。
プロセス | ワークブック | 概要 |
---|---|---|
Apache | Apache.twbx | Apache(http)ログファイルから、vizロード時間、ビュー数、エラー、警告などを、収集・分析します。 |
Backgrounder | Backgrounder.twbx | サブスクリプションや抽出の更新など、Tableau Serverのバックグラウンドタスクおよびジョブに関する情報を表示します。データはバックグラウンダーのログファイルから取得されます。 |
ClusterController | ClusterController.twbx | clustercontrollerおよびzookeeperのログファイルから取得された、クラスターコントローラーのイベントおよびエラーに関する情報を表示します。ディスクのパフォーマンスに関する情報も含まれています。 |
Config | Config.twbx | ログファイルからTableau Serverのトポロジと構成設定を表示します。 |
Filestore | Filestore.twbx | ファイルストアのイベントとエラーに関する情報を表示します。 |
Hyper | Hyper.twbx | 抽出の生成や抽出クエリの詳細など、Hyperアクティビティに関する情報を表示します。 |
Netstat | Netstat.twbx | サーバーログセット内の、netstatのアウトプットファイルから取得した、トランスポート層の予約ポートに関する情報を表示します。 netstatデータを表示するためには、Tableau Serverのログを取得する際に、ziplogsに-n引数を付けて実行する必要があります。 |
Postgres | Postgres.twbx | アプリケーションクエリの詳細など、Tableau Serverリポジトリのイベントとエラーに関する情報を表示します。 |
ResourceManager | ResourceManager.twbx | Server Resource Managerログイベントから収集された情報を表示します。ワークブックには、CPU使用率、メモリ使用率、およびプロセスリサイクルイベントに関するメトリックが含まれています。 |
SearchServer | SearchServer.twbx | 検索インデックス作成イベントを含む、Tableau ServerのSearch&Browserサービスに関する情報を表示します。 |
VizPortal | Vizportal.twbx | 認証やAPIの問題など、Tableau ServerのApplication Serverイベントに関する情報を表示します。 |
VizqlServer | VizqlServer.twbx | Tableau vizqlserverログファイルから、エラーデータを含む高レベルのセッション概要情報を収集します。 |
ワークブックを見てみる
今回は、バックグラウンダーのワークブックを見てみようと思います。というのも、Tableau Serverを利用しているユーザーがよく遭遇するエラーで多いのが、抽出作成に関するエラーだから(超個人的感覚)です。
Background Task Overview
バックグラウンダーが、いつ、どんなジョブを行ったかを概観できます。上からジョブを選択していくことで、そのジョブの詳細情報が下記ビューに表示されていきます。
Backgrounder Utilization
バックグラウンダーがどれだけ処理に時間を費やしているか(またはどれだけ待機時間があるか)を見ることが出来ます。真ん中のタイムラインがぎちぎちに埋まっていたら、行うジョブ数に対して、バックグラウンダーの数が足りていません。下部の「1時間あたりの平均待機時間」が多い場合は、逆にバックグラウンダーを持て余しています。このダッシュボードの対象となっているジョブは、成功したジョブのみです。
Backgrounder Error Analysis
バックグラウンダーのエラーに関するダッシュボードです。上部のメニューでジョブが行われた時間や種類を選択すると、該当するエラーのクラスやエラー種別の一覧が出ます。さらにそれを選択すると、下記のビューに、選択したエラーの詳細な時間とエラーメッセージを確認することができます。
Extract Task Details
抽出更新ジョブに関するダッシュボードです。このダッシュボードの観点は「どのくらいの頻度で抽出に失敗しているか」です。100%失敗している抽出は、明らかに何らかの原因によって抽出が妨げられているので、エラーメッセージ等から、解決を図る必要があります。
Subscription Task Details
上記ダッシュボードのサブスクリプション版です(今回使用したTableau Serverが、サブスクリプション全く行ってないため、情報がありません…)。
おわりに
こんな感じで、Tableau製品で何が起こっているのかを、サクっと確認することができます。詳細な調査はTableau社のテクニカルサポートに見てもらう必要がありますが、ある程度自分で不具合原因のアタリをつけられるツールとしては、有用だと思いました。